package com.zlkj.pro.modular.business.model.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;

/**
 * @author liyang
 * @date 2024/4/6
 * @time 14:34
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ReportVO implements Serializable {

    private Long id;

    private String code;

    private Integer status;

    private String statusName;

    private Integer conferStatus;

    private Integer certificateStatus;

    private Long agentId;

    private String agentName;

    private Long customerId;

    private String customerName;

    private Integer customerType;

    private String customerClassify;

    private String customerAddress;

    private String customerAddressDetail;

    private Integer customerLevel;

    private Integer customerStatus;

    private String customerUscc;

    private String customerRemark;

    private String customerPhone;

    private String customerContactsName;

    private String customerContactsPhone;

    private String invalidSource;

    private String invalidReason;

    private LocalDate expirationDateStart;

    private LocalDate expirationDateEnd;

    private LocalDate approveDate;

    private Long approveUser;

    private String approveUserName;

    private LocalDate delayDate;

    private String delayReason;

    private String remark;

    private LocalDate applyEndDate;

    private LocalDate transactionDate;

    private Integer productCount;

    private String productName;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 创建人
     */
    private Long createUser;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 更新人
     */
    private Long updateUser;

    /**
     * 删除标记：Y-已删除，N-未删除
     */
    private String delFlag;


    /**
     * 详情产品列表
     */
    private List<ReportProductVO> products;


    // 延期申请时间
    private Date delayApplyTime;
    // 延期申请人id
    private Long delayCreateUserId;
    // 延期申请人姓名
    private String delayCreateUserName;
    // 延期申请人电话
    private String delayCreateUserPhone;
    // 延期审核通过时间
    private Date delayPassTime;
    // 延期审批人id
    private Long delayPassUserId;
    // 延期延期审批人姓名
    private String delayPassUserName;
    // 客户类型名称
    private String customerTypeName;
    // 报备人姓名
    private String createUserName;
    // 报备人电话
    private String createUserPhone;
    // 代理商地址
    private String agentAddress;
    // 代理商联系人姓名
    private String agentContactName;
    // 代理商联系人电话
    private String agentContactPhone;

    /**
     * 延期附件列表
     */
    private List<ReportDelayFileVO> delayFiles;


    //是否预警
    private Boolean isAlarm;
    //是否展示申请延期
    private Boolean isShowDelay;

    private String installAddress;

    private String whyAutoFail;

    /**
     * 当前代理商负责区域
     */
    private String agentArea;

    private String failCodes4;

    private String failCodes3;

    private String failCodes6;

    private String failCodes9;

    private String failCodes1;

    private String failCodes2;


    private String failCodes14;

    private String failCodes13;

    private String failCodes16;

    private String failCodes19;

    private String failCodes11;

    private String failCodes12;

    private String sellCode;

    private Boolean ourReport;

}